fix bug with nested batch files.
authortsteven4 <tsteven4@gmail.com>
Wed, 8 Nov 2017 16:43:32 +0000 (09:43 -0700)
committertsteven4 <tsteven4@gmail.com>
Wed, 8 Nov 2017 16:43:32 +0000 (09:43 -0700)
main.cc
testo.d/batch.test [new file with mode: 0644]

diff --git a/main.cc b/main.cc
index 3ab7ffb88eb217a03ee0a61914d2f7fdf3f7bd21..6cf923cae6a416797405a57a68394c984056fbab 100644 (file)
--- a/main.cc
+++ b/main.cc
@@ -623,7 +623,7 @@ main(int argc, char* argv[])
       break;
     }
 
-    if ((argn+1 >= argc) && (arg_stack != NULL)) {
+    while ((argn+1 >= argc) && (arg_stack != NULL)) {
       arg_stack = pop_args(arg_stack, &argn, &argc, &argv);
     }
     argn++;
diff --git a/testo.d/batch.test b/testo.d/batch.test
new file mode 100644 (file)
index 0000000..addaaba
--- /dev/null
@@ -0,0 +1,24 @@
+
+# batch files
+
+rm -f ${TMPDIR}/batch0
+touch ${TMPDIR}/batch0
+echo "-b ${TMPDIR}/batch1" >> ${TMPDIR}/batch0
+
+rm -f ${TMPDIR}/batch1
+touch ${TMPDIR}/batch1
+echo "-i gpx" >> ${TMPDIR}/batch1
+echo "-f ${REFERENCE}/bounds-test.gpx" >> ${TMPDIR}/batch1
+echo "-o kml" >> ${TMPDIR}/batch1
+echo "-F ${TMPDIR}/batch-bnds.kml" >> ${TMPDIR}/batch1
+
+rm -f ${TMPDIR}/expected_version
+gpsbabel -V 1>${TMPDIR}/expected_version
+
+rm -f ${TMPDIR}/batch-bnds.kml
+gpsbabel -b ${TMPDIR}/batch0 -V 1>${TMPDIR}/batch_version
+# if we don't pop all the way back to the original arugments we won't execute the -V
+compare ${TMPDIR}/expected_version ${TMPDIR}/batch_version
+# make sure we ran the innermosts batch file
+compare ${REFERENCE}/bounds-test.kml ${TMPDIR}/batch-bnds.kml
+